iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天-從新開始學C#+包含建出一個CRUD產品系列 第 10

第10天:模型 EF (Entity Framework) 資料庫CRUD操作

  • 分享至 

  • xImage
  •  
  • 了解什麼是模型(Model)以及它在MVC中的角色。
  • 學習使用Entity Framework(EF)進行資料庫操作。
  • 練習基本的CRUD(Create, Read, Update, Delete)操作。

在你的ASP.NET MVC項目中創建一個新的C#類別,例如Student。
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
https://ithelp.ithome.com.tw/upload/images/20230911/20151652LmQ9u9ffFV.png

namespace WebApplication3_DAY11.Data
{
public class WebApplication3_DAY11Context : DbContext
{
public WebApplication3_DAY11Context() : base("name=WebApplication3_DAY11Context")
{
}

	public System.Data.Entity.DbSet<WebApplication3_DAY11.Models.Student> Students { get; set; }
}

}

https://ithelp.ithome.com.tw/upload/images/20230911/201516523cqWaRBGdt.png

在控制器中實現以下操作:
新增(Create):新增一個學生到資料庫。
// GET: Students/Create
public ActionResult Create()
{
return View();
}

    // POST: Students/Create
    // To protect from overposting attacks, enable the specific properties you want to bind to, for 
    // more details see https://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "Id,Name,Age")] Student student)
    {
        if (ModelState.IsValid)
        {
            db.Students.Add(student);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(student);
    }

讀取(Read):從資料庫讀取學生列表。
public ActionResult Index()
{
return View(db.Students.ToList());
}
更新(Update):更改某個學生的信息。
// GET: Students/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Student student = db.Students.Find(id);
if (student == null)
{
return HttpNotFound();
}
return View(student);
}

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "Id,Name,Age")] Student student)
    {
        if (ModelState.IsValid)
        {
            db.Entry(student).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(student);
    }

刪除(Delete):從資料庫中刪除某個學生。
// GET: Students/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Student student = db.Students.Find(id);
if (student == null)
{
return HttpNotFound();
}
return View(student);
}

    // POST: Students/Delete/5
    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public ActionResult DeleteConfirmed(int id)
    {
        Student student = db.Students.Find(id);
        db.Students.Remove(student);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

https://ithelp.ithome.com.tw/upload/images/20230911/20151652fkLIY6tfOu.png

還在努力轉職中

Github https://github.com/qsc811022/WebApplication3_DAY11


上一篇
第9天:控制器和視圖
下一篇
第11天:實戰練習 建立一個簡單的博客或待辦事項應用程式使用Dapper
系列文
30天-從新開始學C#+包含建出一個CRUD產品14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言